{
  "guild": {
    "id": "1361349522684510449",
    "name": "wafer.space Community",
    "iconUrl": "2025-08_media/fb143eaa45770cbb40493d09b625e98b-09FD1.png"
  },
  "channel": {
    "id": "1410252190282678284",
    "type": "GuildPublicThread",
    "categoryId": "1361349523724570941",
    "category": "general",
    "name": "I managed to persuade pdngen to connect",
    "topic": null
  },
  "dateRange": {
    "after": "2025-07-31T23:59:59.999+00:00",
    "before": "2025-09-01T00:00:00+00:00"
  },
  "exportedAt": "2026-05-11T09:47:43.8782514+00:00",
  "messages": [
    {
      "id": "1410252312555028652",
      "type": "21",
      "timestamp": "2025-08-27T13:19:12.534+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "reference": {
        "messageId": "1410252190282678284",
        "channelId": "1361349523724570941",
        "guildId": "1361349522684510449"
      },
      "inlineEmojis": []
    },
    {
      "id": "1410252315264417812",
      "type": "Default",
      "timestamp": "2025-08-27T13:19:13.18+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "The trick (or problem) is that the DVDD/DVSS pins are all on Metal2, which means the PDN ring will only connect to the pads via Metal2. Metal2 is vertical by default, which means we can only have I/O power/ground cells in the northern or southern I/O row (in the current setup, I hope we can change this).",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1410252372957069343",
      "type": "Default",
      "timestamp": "2025-08-27T13:19:26.935+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "This example design now runs through the whole flow without any problems, except that netgen LVS fails since the power/ground pins are not yet properly represented in the PNL.",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1410252472588566569",
      "type": "Default",
      "timestamp": "2025-08-27T13:19:50.689+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "@tnt I think you looked into overriding the preferred directions in pdngen at some point? Did you manage to achieve this?",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [
        {
          "id": "596068704471482370",
          "name": "246tnt",
          "discriminator": "0000",
          "nickname": "tnt",
          "color": null,
          "isBot": false,
          "roles": [],
          "avatarUrl": "2025-08_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png"
        }
      ],
      "inlineEmojis": []
    },
    {
      "id": "1410252619066249226",
      "type": "Default",
      "timestamp": "2025-08-27T13:20:25.612+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "@htamas I noticed that you have some `CONNECT_POWER_PADS` defines in your code. Did you manage to get the PNL to properly connect the core PDN to the I/O power/ground bondpad pins?",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [
        {
          "id": "543162393413287956",
          "name": "h.tamas",
          "discriminator": "0000",
          "nickname": "htamas",
          "color": null,
          "isBot": false,
          "roles": [],
          "avatarUrl": "2025-08_media/1-B2132.png"
        }
      ],
      "inlineEmojis": []
    },
    {
      "id": "1410252707960193034",
      "type": "Default",
      "timestamp": "2025-08-27T13:20:46.806+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "I'm gonna upload this repo soon to the wafer.space GitHub with a WIP PDK so anyone can reproduce this with the LibreLane padring step.",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1410254307466678363",
      "type": "Default",
      "timestamp": "2025-08-27T13:27:08.158+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "@Leo Moser (mole99) No, I didn't manage to do it, it's pretty wired down everywhere ...   and in the end the IHP guys changed the direction in the tech LEF \ud83d\ude05",
      "author": {
        "id": "596068704471482370",
        "name": "246tnt",
        "discriminator": "0000",
        "nickname": "tnt",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-08_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [
        {
          "id": "323371864074485771",
          "name": "mole99",
          "discriminator": "0000",
          "nickname": "Leo Moser (mole99)",
          "color": null,
          "isBot": false,
          "roles": [
            {
              "id": "1423020172595298314",
              "name": "Mod",
              "color": null,
              "position": 1
            }
          ],
          "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
        }
      ],
      "inlineEmojis": [
        {
          "id": "",
          "name": "\ud83d\ude05",
          "code": "sweat_smile",
          "isAnimated": false,
          "imageUrl": "2025-08_media/1f605-42B43.svg"
        }
      ]
    },
    {
      "id": "1410255682703458345",
      "type": "Default",
      "timestamp": "2025-08-27T13:32:36.04+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "Well, that's one solution \ud83d\ude04\n\nActually, I think the `add_pdn_ring -connect_to_pads` function should be more flexible. If we have a core ring with Metal5 and Metal4, it should still be able to make all connections with Metal2 and then drop vias. Maybe this function just needs another argument to override this. I'll ask the folks at OpenROAD what they think about this.",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": [
        {
          "id": "",
          "name": "\ud83d\ude04",
          "code": "smile",
          "isAnimated": false,
          "imageUrl": "2025-08_media/1f604-BF863.svg"
        }
      ]
    },
    {
      "id": "1411401048547131502",
      "type": "Default",
      "timestamp": "2025-08-30T17:23:52.537+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "I got the power/ground bondpads connected and LVS to match \ud83d\udc4f",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": [
        {
          "id": "",
          "name": "\ud83d\udc4f",
          "code": "clap",
          "isAnimated": false,
          "imageUrl": "2025-08_media/1f44f-3D381.svg"
        }
      ]
    },
    {
      "id": "1411401157003444254",
      "type": "Default",
      "timestamp": "2025-08-30T17:24:18.395+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "@htamas In your padring script, I saw that you used `place_io_terminals` to place the BTerms for the I/O pads, since the bondpads are integrated into the cells (as opposed to IHP):\n\n```\nplace_io_terminals gf180mcu_fd_io__*/DVSS\nplace_io_terminals gf180mcu_fd_io__*/DVDD\n```\n\nIt seems that `place_io_terminals` simply promotes the first pin of the specified port to a BTerm.",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [
        {
          "id": "543162393413287956",
          "name": "h.tamas",
          "discriminator": "0000",
          "nickname": "htamas",
          "color": null,
          "isBot": false,
          "roles": [],
          "avatarUrl": "2025-08_media/1-B2132.png"
        }
      ],
      "inlineEmojis": []
    },
    {
      "id": "1411401179925184532",
      "type": "Default",
      "timestamp": "2025-08-30T17:24:23.86+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "For the default power/ground pads that would be one of the pins on the side, resulting in this:",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1411401227786518723",
      "type": "Default",
      "timestamp": "2025-08-30T17:24:35.271+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [
        {
          "id": "1411401227744313394",
          "url": "2025-08_media/Bildschirmfoto_vom_2025-08-30_18-29-36-9051A.png",
          "fileName": "Bildschirmfoto_vom_2025-08-30_18-29-36.png",
          "fileSizeBytes": 168818
        }
      ],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1411401305083215922",
      "type": "Default",
      "timestamp": "2025-08-30T17:24:53.7+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "It turns out that the power/ground pads don't even have pins at the bondpad locations, so by default the `place_io_terminals` command cannot work as we want it to work.\n\nTherefore, I tried to add a `PAD` port, just like the other I/O pads, which initially seemed to work fine: I could global-connect it to the respective VDD/VSS net. However, PSM would throw an error, because there is no physical connection between PAD and any of the power pins.\n\n```\n[18:32:56] ERROR    [PSM-0069] Check connectivity failed on VDD.\n[18:33:07] ERROR    [PSM-0069] Check connectivity failed on VSS.\n```",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1411401404593213461",
      "type": "Default",
      "timestamp": "2025-08-30T17:25:17.425+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "So instead I added another pin to the DVSS/DVDD ports that matches the location of the bondpads (same as PAD) and is listed as the first pin in the LEF file. This way `place_io_terminals` promotes the correct pin to a BTerm.\n\nHowever, instead of:\n\n```\nplace_io_terminals gf180mcu_fd_io__*/DVSS\nplace_io_terminals gf180mcu_fd_io__*/DVDD\n```\n\nWe have to write:\n\n```\nplace_io_terminals gf180mcu_fd_io__dvss*/DVSS\nplace_io_terminals gf180mcu_fd_io__dvdd*/DVDD\n```\n\nAs otherwise we would still get one BTerm at the side of the power/ground pad.",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1411401460440367104",
      "type": "Default",
      "timestamp": "2025-08-30T17:25:30.74+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "With this change the PDN is complete:",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1411401489586327582",
      "type": "Default",
      "timestamp": "2025-08-30T17:25:37.689+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [
        {
          "id": "1411401489288528052",
          "url": "2025-08_media/Bildschirmfoto_vom_2025-08-30_19-00-07-96E58.png",
          "fileName": "Bildschirmfoto_vom_2025-08-30_19-00-07.png",
          "fileSizeBytes": 361351
        }
      ],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1411401526529884161",
      "type": "Default",
      "timestamp": "2025-08-30T17:25:46.497+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "PSM is happy:\n\n```\n[INFO PSM-0040] All shapes on net VDD are connected.\n[INFO PSM-0040] All shapes on net VSS are connected.\n```\n\nAnd netgen as well:\n\n```\nFinal result:\nCircuits match uniquely.\n```",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [
        {
          "emoji": {
            "id": "",
            "name": "\ud83c\udf89",
            "code": "tada",
            "isAnimated": false,
            "imageUrl": "2025-08_media/1f389-5C738.svg"
          },
          "count": 1,
          "users": [
            {
              "id": "543162393413287956",
              "name": "h.tamas",
              "discriminator": "0000",
              "nickname": "htamas",
              "color": null,
              "isBot": false,
              "avatarUrl": "2025-08_media/1-B2132.png"
            }
          ]
        }
      ],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1411401665273266369",
      "type": "Default",
      "timestamp": "2025-08-30T17:26:19.576+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "I think that would be reasonable change in the PDK. What do you think @tnt @htamas @Tholin?",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [
        {
          "id": "220639106915368960",
          "name": "tholin",
          "discriminator": "0000",
          "nickname": "Tholin",
          "color": null,
          "isBot": false,
          "roles": [],
          "avatarUrl": "2025-08_media/edae5aadf146133e0448bfb1f0fa91c4-62B19.png"
        },
        {
          "id": "596068704471482370",
          "name": "246tnt",
          "discriminator": "0000",
          "nickname": "tnt",
          "color": null,
          "isBot": false,
          "roles": [],
          "avatarUrl": "2025-08_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png"
        },
        {
          "id": "543162393413287956",
          "name": "h.tamas",
          "discriminator": "0000",
          "nickname": "htamas",
          "color": null,
          "isBot": false,
          "roles": [],
          "avatarUrl": "2025-08_media/1-B2132.png"
        }
      ],
      "inlineEmojis": []
    },
    {
      "id": "1411404600610656318",
      "type": "Reply",
      "timestamp": "2025-08-30T17:37:59.415+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "Sounds good to me, thanks for figuring it out.",
      "author": {
        "id": "543162393413287956",
        "name": "h.tamas",
        "discriminator": "0000",
        "nickname": "htamas",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-08_media/1-B2132.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [
        {
          "emoji": {
            "id": "",
            "name": "\ud83d\udc4d",
            "code": "thumbsup",
            "isAnimated": false,
            "imageUrl": "2025-08_media/1f44d-27259.svg"
          },
          "count": 1,
          "users": [
            {
              "id": "323371864074485771",
              "name": "mole99",
              "discriminator": "0000",
              "nickname": "Leo Moser (mole99)",
              "color": null,
              "isBot": false,
              "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
            }
          ]
        }
      ],
      "mentions": [
        {
          "id": "323371864074485771",
          "name": "mole99",
          "discriminator": "0000",
          "nickname": "Leo Moser (mole99)",
          "color": null,
          "isBot": false,
          "roles": [
            {
              "id": "1423020172595298314",
              "name": "Mod",
              "color": null,
              "position": 1
            }
          ],
          "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
        }
      ],
      "reference": {
        "messageId": "1411401665273266369",
        "channelId": "1410252190282678284",
        "guildId": "1361349522684510449"
      },
      "inlineEmojis": []
    },
    {
      "id": "1411405175037493270",
      "type": "Default",
      "timestamp": "2025-08-30T17:40:16.369+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "Thanks, your script was really helpful!",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1411406382087012504",
      "type": "Default",
      "timestamp": "2025-08-30T17:45:04.152+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "@Leo Moser (mole99) ack.",
      "author": {
        "id": "596068704471482370",
        "name": "246tnt",
        "discriminator": "0000",
        "nickname": "tnt",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-08_media/88d17af9d19ab43565b0c46751ef7d12-DFEE5.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [
        {
          "id": "323371864074485771",
          "name": "mole99",
          "discriminator": "0000",
          "nickname": "Leo Moser (mole99)",
          "color": null,
          "isBot": false,
          "roles": [
            {
              "id": "1423020172595298314",
              "name": "Mod",
              "color": null,
              "position": 1
            }
          ],
          "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
        }
      ],
      "inlineEmojis": []
    },
    {
      "id": "1411407285707739176",
      "type": "Default",
      "timestamp": "2025-08-30T17:48:39.592+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "Definitely a less scuffed solution than me giving the power/ground IO cells tails.",
      "author": {
        "id": "220639106915368960",
        "name": "tholin",
        "discriminator": "0000",
        "nickname": "Tholin",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-08_media/edae5aadf146133e0448bfb1f0fa91c4-62B19.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1411407411809484800",
      "type": "Default",
      "timestamp": "2025-08-30T17:49:09.657+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "And tricking pdngen into thinking those tails are part of the PDN grid.",
      "author": {
        "id": "220639106915368960",
        "name": "tholin",
        "discriminator": "0000",
        "nickname": "Tholin",
        "color": null,
        "isBot": false,
        "roles": [],
        "avatarUrl": "2025-08_media/edae5aadf146133e0448bfb1f0fa91c4-62B19.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [],
      "mentions": [],
      "inlineEmojis": []
    },
    {
      "id": "1411408857711775794",
      "type": "Default",
      "timestamp": "2025-08-30T17:54:54.387+00:00",
      "timestampEdited": null,
      "callEndedTimestamp": null,
      "isPinned": false,
      "content": "Sounds good then. I'll update the LEF view of `gf180mcu_fd_io__dvss` and `gf180mcu_fd_io__dvdd` to add the pin geometry.",
      "author": {
        "id": "323371864074485771",
        "name": "mole99",
        "discriminator": "0000",
        "nickname": "Leo Moser (mole99)",
        "color": null,
        "isBot": false,
        "roles": [
          {
            "id": "1423020172595298314",
            "name": "Mod",
            "color": null,
            "position": 1
          }
        ],
        "avatarUrl": "2025-08_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png"
      },
      "attachments": [],
      "embeds": [],
      "stickers": [],
      "reactions": [
        {
          "emoji": {
            "id": "",
            "name": "\ud83d\udc4d",
            "code": "thumbsup",
            "isAnimated": false,
            "imageUrl": "2025-08_media/1f44d-27259.svg"
          },
          "count": 1,
          "users": [
            {
              "id": "543162393413287956",
              "name": "h.tamas",
              "discriminator": "0000",
              "nickname": "htamas",
              "color": null,
              "isBot": false,
              "avatarUrl": "2025-08_media/1-B2132.png"
            }
          ]
        }
      ],
      "mentions": [],
      "inlineEmojis": []
    }
  ],
  "messageCount": 24
}